var QQMapWX = require('./qqmap-wx-jssdk.min.js');

module.exports = {
  getLocationAuth: getLocationAuth,
  getWxLocation: getWxLocation,
  getLocalAddr: getLocalAddr,
}

// 请求获得用户的微信信息授权
//param 参数组成的json对象
//param.success 获取成功后调用的方法
//param.cancel  用户拒绝授权
function getLocationAuth(param) {

  var success = param.hasOwnProperty('success') ? param.success : function (res) { };//同意授权后调用的方法
  var cancel = param.hasOwnProperty('cancel') ? param.cancel : function(res){};//同意授权后调用的方法
  var fail = param.hasOwnProperty('fail') ? param.fail : function (res) { };//授权失败后调用的方法

  wx.getSetting({
    success: (res) => {
      // console.log(JSON.stringify(res))
      // res.authSetting['scope.userLocation'] == undefined    表示 初始化进入该页面
      // res.authSetting['scope.userLocation'] == false    表示 非初始化进入该页面,且未授权
      // res.authSetting['scope.userLocation'] == true    表示 地理位置授权
      if (res.authSetting['scope.userLocation'] != undefined && res.authSetting['scope.userLocation'] != true) {
        wx.showModal({
          title: '请求授权当前位置',
          content: '需要获取您的地理位置以便获取附近门店，请确认授权',
          success: function (res) {
            if (res.cancel) {
              wx.showToast({
                title: '用户拒绝了授权',
                icon: 'none',
                duration: 2000
              })
              //拒绝授权，调用拒绝的方法
              cancel(res);
            } else if (res.confirm) {
              wx.openSetting({
                success: function (dataAu) {
                  if (dataAu.authSetting["scope.userLocation"] == true) {
                    wx.showToast({
                      title: '授权成功',
                      icon: 'success',
                      duration: 2000
                    })
                    //授权成功，调用授权成功的方法
                    success(dataAu);
                  } else {
                    wx.showToast({
                      title: '授权失败',
                      icon: 'none',
                      duration: 2000
                    })
                    //授权失败，调用授权失败的方法
                    fail(dataAu);
                  }
                }
              })
            }
          }
        })
      } else if (res.authSetting['scope.userLocation'] == undefined) {
        //授权成功，调用授权成功的方法
        success(res);
      }
      else {
        //授权成功，调用授权成功的方法
        success(res);
      }
    }
  })

}


//获得地理位置信息
// 微信获得经纬度
//param.success 获取成功后执行的方法
//param.fail    获取失败后执行的方法
function getWxLocation(param) {

  var success = param.hasOwnProperty('success') ? param.success : function (res) { };//获取成功后调用的方法
  var fail = param.hasOwnProperty('fail') ? param.fail : function (res) { };//获取失败后调用的方法

  wx.getLocation({
    type: 'gcj02',
    isHighAccuracy: true,
    success: function (res) {
      // console.log(JSON.stringify(res))
      //成功后调用成功的方法
      success(res);

    },
    fail: function (res) {
      console.log('fail' + JSON.stringify(res))
      wx.showToast({
        title: '获取用户的位置信息失败',
        icon: 'none',
        duration: 2000
      })
      //失败后调用失败的方法
      fail(res);
    }
  })
}

// 获取当前地理位置，通过经纬度获得位置信息
//param.longitude 经纬信息
//param.latitude  纬度信息
//para.success    成功调用方法
//param.fail      失败调用方法
//param.complete  无论成功或失败都会调用的方法
function getLocalAddr(param) {

  var longitude = param.hasOwnProperty('longitude') ? param.longitude : 0;//经度
  var latitude = param.hasOwnProperty('latitude') ? param.latitude : 0;//纬度
  if(!longitude||!latitude){
    wx.showToast({
      title: '缺少经纬度信息',
      icon: 'none',
      duration: 2000
    })
    return;
  }

  var success = param.hasOwnProperty('success') ? param.success : function (res) { };//获取成功后调用的方法
  var fail = param.hasOwnProperty('fail') ? param.fail : function (res) { };//获取失败后调用的方法
  var complete = param.hasOwnProperty('complete') ? param.complete : function (res) { };//获取完成后调用的方法

  //初始化腾讯地图的对象
  var qqmapsdk = new QQMapWX({
    key: 'ZBABZ-S5LKO-AQAWR-SNHUD-V3AQS-MSBMB' //自己的腾讯地图key秘钥 http://lbs.qq.com/console/mykey.html 在这个网址申请
  });

  qqmapsdk.reverseGeocoder({
    location: {
      latitude: latitude,
      longitude: longitude
    },
    success: function (res) {
      // console.log(JSON.stringify(res));
      // console.log(res.result.ad_info);

      //调用成功方法
      success(res);

    },
    fail: function (res) {
      console.log(res);
      wx.showToast({
        title: '获取位置信息失败了',
        icon: 'none',
        duration: 2000
      })
      //调用失败方法
      fail(res);
    },
    complete: function (res) {
      // console.log(res);
      //调用无论成功或失败都会进行的完成方法
      complete(res);
    }
  });
}
